A Survey on Software Clone Detection Research
نویسندگان
چکیده
Code duplication or copying a code fragment and then reuse by pasting with or without any modifications is a well known code smell in software maintenance. Several studies show that about 5% to 20% of a software systems can contain duplicated code, which is basically the results of copying existing code fragments and using then by pasting with or without minor modifications. One of the major shortcomings of such duplicated fragments is that if a bug is detected in a code fragment, all the other fragments similar to it should be investigated to check the possible existence of the same bug in the similar fragments. Refactoring of the duplicated code is another prime issue in software maintenance although several studies claim that refactoring of certain clones are not desirable and there is a risk of removing them. However, it is also widely agreed that clones should at least be detected. In this paper, we survey the state of the art in clone detection research. First, we describe the clone terms commonly used in the literature along with their corresponding mappings to the commonly used clone types. Second, we provide a review of the existing clone taxonomies, detection approaches and experimental evaluations of clone detection tools. Applications of clone detection research to other domains of software engineering and in the same time how other domain can assist clone detection research have also been pointed out. Finally, this paper concludes by pointing out several open problems related to clone detection research. ∗This document represents our initial findings and a further study is being carried on. Reader’s feedback is welcome at [email protected].
منابع مشابه
The Vision of Software Clone Management: Past, Present, and Future
Duplicated code or code clones are a kind of code smell that have both positive and negative impacts on the development and maintenance of software systems. Software clone research in the past mostly focused on the detection and analysis of code clones, while research in recent years extends to the whole spectrum of clone management. In the last decade, three surveys appeared in the literature,...
متن کاملTo Enhance Type 4 Clone Detection in Clone Testing
The means of software reuse is copying and modifying block of code that detect cloning. As a survey, it is observed that 20-30% of module in system may be cloned. So it is mandatory to detect clones in system to reduce replication and improve reusability. Code clone is similar or duplicate code in source code that is created either by replication or some modifications. Clone is a persistent for...
متن کاملSurvey of Research on Software Clones
This report summarizes my overview talk on software clone detection research. It first discusses the notion of software redundancy, cloning, duplication, and similarity. Then, it describes various categorizations of clone types, empirical studies on the root causes for cloning, current opinions and wisdom of consequences of cloning, empirical studies on the evolution of clones, ways to remove, ...
متن کاملA Survey of Software Clone Detection Techniques
If two fragments of source code are identical or similar to each other, they are called code clones. Code clones introduce difficulties in software maintenance and cause bug propagation. Software clones occur due to several reasons such as code reuse by copying pre-existing fragments, coding style, and repeated computation using duplicated functions with slight changes in variables or data stru...
متن کاملSoftware Code Clone Detection Model Using Hybrid Approach
The aspiration of this study is to understand and analyze the concept of software Cloning and its detection. Software cloning is an acuity in which source code is duplicated. Software cloning and its detection is one of emerging and most dominant area of research in the field of software engineering. There exist numbers of techniques to detect clone in software. The focus of this study will be ...
متن کامل